package com.diankangwo.factory.dao;

import com.diankangwo.factory.entity.TdCommodity;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface TdCommodityMapper {

    int deleteByPrimaryKey(Integer id);

    int insert(TdCommodity record);

    int insertSelective(TdCommodity record);

    TdCommodity selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TdCommodity record);

    int updateByPrimaryKey(TdCommodity record);

    /**
     * 根据商品名称查询
     * @param commodityName
     * @return
     */
    List<TdCommodity> queryByName(String commodityName);

    /**
     * 根据销售渠道查询
     * @param saleshannels
     * @return
     */
    List<TdCommodity> queryBySaleshannels(String saleshannels);

    /**
     * 查询商品列表
     */
    List<TdCommodity> queryList(Map<String, Object> map);

    /**
     * 查询总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 查询二级分类下的总数
     */
    int queryTotalByClass(int classid);

    /**
     * 保存商品
     */
    void save(TdCommodity commodity);

    int save2(TdCommodity commodity);

    /**
     * 修改商品
     */
    void update(TdCommodity commodity);

    /**
     * 删除商品
     */
    void deleteBatch(int[] commodityIds);

    /**
     * 根据厂家ID获取商品列表
     * @param factoryId
     * @return
     */
    List<TdCommodity> queryByFactoryId(int factoryId);

    /**
     * 根据一级分类获取商品列表
     * @param typeId
     * @return
     */
    List<TdCommodity> queryByTypeId(int typeId);

    /**
     * 根据二级分类获取商品列表
     * @param classId
     * @return
     */
    List<TdCommodity> queryByClassId(int classId);

    /**
     * 根据三级分类获取商品列表
     * @param speId
     * @return
     */
    List<TdCommodity> queryBySpeId(int speId);

    /**
     * 根据厂家ID获取商品总数
     * @param factoryId
     * @return
     */
    int querybyTotalByFactoryId(int factoryId);
}